<!DOCTYPE html>
<html lang="en">
<head>
    @include('pc.cssjq')
</head>
<body>
<div class="preloader">
    <div class="spinner"></div>
</div>


<div class="topbar">
    <img src="/static/pc/img/logo.png" class="logo"/>
    <div>
        <a href="/"><strong>{{$myUser['username']}}</strong></a>
        <span>|</span>
        <a href="/home/logout">退出</a>
    </div>
</div>

<div class="container">
    <div class="source">
        <div class="aboutleft">
            <div class="line">
                <span class="strong">复旦复华</span><span>600624</span>
            </div>
            <div class="line">
                <i>两融</i><i>沪主板</i>
            </div>
            <div class="line" id="show-price">
                <div class="big red price"><b></b></div>
                <div class="small red number"></div>
                <div class="small red rate"></div>
            </div>
            <div class="line" id="show-stock">
                <div class="bok">今开：<span class="red open"></span></div>
                <div class="bok">最高：<span class="red height"></span></div>
                <div class="bok">涨停：<span class="red zhang_ting"></span></div>
                <div class="bok">成交量：<span class="red liang"></span></div>
                <div class="bok">总市值：<span class="red market"></span></div>
            </div>

        </div>

        <div class="aboutright">
            <div><img src="/static/pc/img/i_c1.png"/>数据总量：{{$totalNumber}}</div>
            <div><img src="/static/pc/img/i_c2.png"/>今日：{{$todayNumber}}</div>
            <div><img src="/static/pc/img/i_c3.png"/>昨日：{{$yedayNumber}}</div>
            <div><img src="/static/pc/img/i_c4.png"/>公告：{{$noticeNumber}}</div>
        </div>

    </div>
    <div class="mainright">

        <div class="search">
            <div class="searchlist">
                <div class="class">来源</div>
                <ul>
                    <li data-site_id="0" class="on">全部</li>
                    @foreach($sites as $_site)
                        <li data-site_id="{{$_site['id']}}">{{$_site['name']}}</li>
                    @endforeach
                </ul>
            </div>

            <div class="searchlist">
                <div class="class">关键词</div>
                <ul>
                    <li data-keyword="" class="on">全部</li>
                    @foreach($keywords as $_it)
                        <li data-keyword="{{$_it['name']}}">{{$_it['name']}}</li>
                    @endforeach
                </ul>
            </div>


            <div class="searchlist">
                <div class="class">情感倾向</div>
                <ul>
                    <li data-sentiment="" class="on">全部</li>
                    <li data-sentiment="正向">正向</li>
                    <li data-sentiment="中性">中性</li>
                    <li data-sentiment="负向">负向</li>
                </ul>
            </div>

            <div class="searchlist">
                <div class="time">
                    <input type="text" class="datepicker" style="width: 200px;" placeholder="开始时间 ~ 结束时间"
                           autocomplete="off" id="showDate">
                    <span type="button" role="button" class="search-btn" onclick="search();">
                        <img src="/static/pc/img/search.png"/>
                    </span>
                </div>
                <a href="#" onclick="return downExcel();">下载</a>
            </div>
        </div>
        <!--- 表单 --->
        <form id="downExcelForm">
            <input type="hidden" value="0" id="show_page" name="page">
            <input type="hidden" value="0" id="show_site_id" name="site_id">
            <input type="hidden" value="" id="show_sentiment" name="sentiment">
            <input type="hidden" value="" id="show_keyword" name="keyword">
            <input type="hidden" value="" id="demo_date_start" name="date_start">
            <input type="hidden" value="" id="demo_date_end" name="date_end">
        </form>
        <div class="con">


        </div>

        <div class="page" id="pagination">
            <a href="" class="on">1</a>
            <a href="">2</a>
            <a href="">3</a>
            <a href="">4</a>
            <span>共计：1520</span>
        </div>

        <div class="footer">
            Copyright@2022-2024 shenlanhui.com All Rights Reserved 技术支持：深蓝财经
            <a href="https://beian.miit.gov.cn/" target="_blank">蜀ICP备19030140号-3 </a>
        </div>

    </div>
</div>


<script>
    $(function () {
        // preloader
        $(".preloader").fadeOut();
    });

    $(document).ready(function () {
        $(".datepicker").on("focus", '', function () {
            var today = new Date();
            var year = today.getFullYear();
            var month = today.getMonth() + 1;
            var date = today.getDate();
            var orderDate = year + '-' + month + "-" + date;
            $(this).daterangepicker({
                    minDate: "2021-01-01",
                    maxDate: orderDate,

                    startDate: moment(),
                    endDate: moment(),
                    "locale": {
                        format: 'YYYY-MM-DD',
                        separator: '~',
                        applyLabel: "应用",
                        cancelLabel: "取消",
                        resetLabel: "重置",
                    }
                },
                function (start, end, label) {
                    console.log(this.locale.format)

                    // 开始时间
                    if (this.startDate) {
                        console.log(this.startDate.format(this.locale.format))
                        $('#demo_date_start').val(this.startDate.format(this.locale.format));
                    }

                    // 结束时间
                    if (this.endDate) {
                        console.log(this.endDate.format(this.locale.format))
                        $('#demo_date_end').val(this.endDate.format(this.locale.format));
                    }

                    $('#show_page').val(0);  // 重新开始搜索

                    // 执行查询
                    // 加载更多
                    addmore();
                });
        });

        $(".s-timePicker").on("focus", function () {
            var timeRangeDom = $(this).parent('.s-timeRange');
            var timePickerDom = $(this);
            datePicker(
                moment().subtract(0, 'month').startOf('month'),
                moment().subtract(0, 'month').endOf('month'),
                timeRangeDom,
                timePickerDom,
                'YYYY-MM',
                false,
                {
                    '本月': [moment().startOf('month'), moment().endOf('month')],
                    '上月': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],
                    '近3月': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],
                    '近1年': [moment().subtract(12, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
                },
                true,
                true
            );
        })
    });


    var totalPages = 0;
    var is_trade = true;
    // 选中栏目
    $('.search .searchlist li').on('click', function () {
        // 给当前选中的li添加一个选中的样式，除了点击当前的这个样式其他的删除样式
        $(this).addClass('on').siblings().removeClass('on');

        let site_id = $('.search').find('div.searchlist:eq(0)').find('ul>li.on').data('site_id');
        let keyword = $('.search').find('div.searchlist:eq(1)').find('ul>li.on').data('keyword');
        let sentiment = $('.search').find('div.searchlist:eq(2)').find('ul>li.on').data('sentiment');

        $('#show_page').val(0);  // 重新开始搜索
        $('#show_site_id').val(site_id);  // 重新开始搜索
        $('#show_sentiment').val(sentiment);  // 重新开始搜索
        $('#show_keyword').val(keyword);  // 重新开始搜索
        //$('#demo_date_start').val("");
        //$('#demo_date_end').val("");
        //$('#showDate').val("");

        // 第一种写法
        // $('.boxs > div').hide().eq($('.tabs li').index(this)).show();
        // 第二种写法
        // siblings:除自己以外
        // 当前指向的上级父元素的下一个子元素的索引下标出现，让其他的消失
        //$(this).parent().next().children().eq($(this).index()).css('display', 'block').siblings().css('display', 'none');

        // 加载更多
        addmore();
        return false;
    })


    // 加载更多
    addmore()
    getStock()
    @if(!$is_word)
    makeWord()
    @endif
    var int_get = setInterval(function () {
        if (is_trade) {
            getStock()
        } else {
            //清除计时器
            console.log('关闭：股票信息')
            clearInterval(int_get)
        }
    }, 60000);


    // 执行搜索
    function search() {
        $('#show_page').val(0);  // 重新开始搜索
        addmore()
    }

    // 执行搜索 今天
    function searchToday() {
        $('#show_page').val(0);  // 重新开始搜索

        $('#demo_date_start').val("{{date('Y-m-d')}}");
        $('#demo_date_end').val("{{date('Y-m-d')}}");
        $('#showDate').val("{{date('Y-m-d')}} ~ {{date('Y-m-d')}}");
        $('#show_site_id').val(0);

        addmore()
        return false;
    }

    // 加载更多
    function addmore() {
        $(".preloader").fadeIn().fadeOut();
        //var rows = $('#show_rows').val();
        var page = parseInt($('#show_page').val()) + parseInt(1);
        var rows = 10;
        let site_id = $('#show_site_id').val();
        let date_start = $('#demo_date_start').val();
        let date_end = $('#demo_date_end').val();
        let sentiment = $('#show_sentiment').val();
        let keyword = $('#show_keyword').val();

        console.log('获取数据：当前页：', page)
        // 显示列表
        $.ajax({
            type: 'post',
            url: '/home/on-lists',
            data: {
                page: page,
                size: rows,
                site_id: site_id,
                sentiment: sentiment,
                keyword: keyword,
                date_start: date_start,
                date_end: date_end
            },
            //contentType: 'application/json',
            contentType: 'application/x-www-form-urlencoded',
            // dataType : 'json',
            // contentType: 'application/x-www-form-urlencoded',
            // 这个方法在请求发送前调用，可以用来做表单校验、用来做请求等待动画的调用
            /*beforeSend: function () {
                // 返回false是取消发送
                return false
            },*/
            withCredentials: true,
            // 自定义 header
            beforeSend: function (request) {
                //request.setRequestHeader("Terminal","android");
                //request.setRequestHeader("Token","");
            },
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            },
            // 会自动帮我们把返回的数据根据响应头设置的类型进行转换好（也就是会自动转成json对象）
            success: function (res) {
                //console.log('返回结果', res)
                //$(".mainright .con").append(res)
                $(".mainright .con").html(res)

                // 更新当前页面
                renderPagination(page)
                highShowCurrentPage(page)
            },
            // xhr是ajax对象
            error: function (xhr) {
            }
        });

        // 制作翻页
        if (page == 1) {
            $.ajax({
                type: 'post',
                url: '/home/on-lists',
                data: {
                    page: page,
                    is_page: 1,
                    size: rows,
                    site_id: site_id,
                    sentiment: sentiment,
                    keyword: keyword,
                    date_start: date_start,
                    date_end: date_end
                },
                //contentType: 'application/json',
                contentType: 'application/x-www-form-urlencoded',
                withCredentials: true,
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                },
                // 会自动帮我们把返回的数据根据响应头设置的类型进行转换好（也就是会自动转成json对象）
                success: function (res) {
                    if (res.code == 200) {
                        totalPages = Math.ceil(res.data.total / rows);
                        renderPagination(page)
                        highShowCurrentPage(page)
                    }
                },
                // xhr是ajax对象
                error: function (xhr) {
                }
            });
        }
    }

    // 下载Excel 模拟表单提交
    //  在页面建立一个表单 使用jQuery提交表单可以实现下载文件
    function downExcel() {
        var formObj = $("#downExcelForm");

        console.log(formObj.serialize())

        formObj.action = "/home/down-excel";//发送请求的路径
        formObj.method = "post"; //表单请求的方式
        formObj.attr('action', "/home/down-excel")
        //如果不设置上面的两个参数，默认提交触发该事件的表单
        formObj.submit(); //表单提交

        return false;
    }

    // 生成word
    function makeWord() {
        $.ajax({
            type: 'post',
            url: '/home/make-word',
            data: {date: '{{$yesdate}}'},
            //contentType: 'application/json',
            contentType: 'application/x-www-form-urlencoded',
            // dataType : 'json',
            // contentType: 'application/x-www-form-urlencoded',
            // 这个方法在请求发送前调用，可以用来做表单校验、用来做请求等待动画的调用
            /*beforeSend: function () {
                // 返回false是取消发送
                return false
            },*/
            withCredentials: true,
            // 自定义 header
            beforeSend: function (request) {
                //request.setRequestHeader("Terminal","android");
                //request.setRequestHeader("Token","");
            },
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            },
            // 会自动帮我们把返回的数据根据响应头设置的类型进行转换好（也就是会自动转成json对象）
            success: function (res) {
                console.log('生成word结果', res)
            },
            // xhr是ajax对象
            error: function (xhr) {
            }
        });
    }

    // 获取股票消息
    function getStock() {
        $.ajax({
            type: 'get',
            url: '/home/stock',
            data: {},
            //contentType: 'application/json',
            contentType: 'application/x-www-form-urlencoded',
            // dataType : 'jsonp',
            // contentType: 'application/x-www-form-urlencoded',
            // 这个方法在请求发送前调用，可以用来做表单校验、用来做请求等待动画的调用
            /*beforeSend: function () {
                // 返回false是取消发送
                return false
            },*/
            withCredentials: true,
            // 自定义 header
            beforeSend: function (request) {
                //request.setRequestHeader("Terminal","android");
                //request.setRequestHeader("Token","");
            },
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            },
            // 会自动帮我们把返回的数据根据响应头设置的类型进行转换好（也就是会自动转成json对象）
            success: function (res) {
                console.log('获取股票结果', res.data)
                if (res.data) {
                    let s_data = res.data
                    // "2024-05-10","4.23","4.12","4.25","4.10","55408","22919604.00","3.55","-2.37","-0.10","0.81"

                    // 改变颜色
                    let color = s_data.change > 0 ? 'red' : 'green';
                    changeColor(color)

                    // 改变值
                    $("#show-price .price").text(s_data.price)
                    $("#show-price .number").text(s_data.change)
                    $("#show-price .rate").text(s_data.rate + '%')

                    $("#show-stock .open").text(s_data.open)
                    $("#show-stock .height").text(s_data.high)
                    $("#show-stock .zhang_ting").text(s_data.limit_up.toFixed(2))
                    $("#show-stock .liang").text((s_data.volume / 100).toFixed(0)+'手')
                    $("#show-stock .market").text((s_data.market / (10000 * 10000)).toFixed(2) + "亿")
                }
            },
            // xhr是ajax对象
            error: function (xhr) {
            }
        });
    }

    // 改变字体演示
    function changeColor(color) {
        let addColor = color
        let delColor = color == 'red' ? 'green' : 'red';

        $("#show-price .price").removeClass(delColor).addClass(addColor);
        $("#show-price .number").removeClass(delColor).addClass(addColor);
        $("#show-price .rate").removeClass(delColor).addClass(addColor);

        $("#show-stock .open").removeClass(delColor).addClass(addColor);
        $("#show-stock .height").removeClass(delColor).addClass(addColor);
        $("#show-stock .zhang_ting").removeClass(delColor).addClass(addColor);
        $("#show-stock .liang").removeClass(delColor).addClass(addColor);
        $("#show-stock .market").removeClass(delColor).addClass(addColor);
    }

    // 渲染分页按钮
    function renderPagination(from) {
        $('#pagination').html(''); // 清空分页容器

        if (totalPages > 10) {
            // 首页
            if (from > 1) {
                $('#pagination').append('<a data-page="1">1<<</a> ');
            }
            // 中间显示8页
            let min = from - 4 > 1 ? from - 4 : 1;
            let max = from - 4 > 1 ? from + 4 : 8;
            if (max > totalPages) {
                max = totalPages;
                min = totalPages - 8;
            }

            for (let pageii = min; pageii <= max; pageii++) {
                $('#pagination').append('<a data-page="' + pageii + '">' + pageii + '</a> ');
            }

            // 最后一页
            if (from < totalPages) {
                $('#pagination').append('<a data-page="' + totalPages + '">>>' + totalPages + '</a> ');
            }
        } else {
            for (let pageii = 1; pageii <= totalPages; pageii++) {
                $('#pagination').append('<a data-page="' + pageii + '">' + pageii + '</a> ');
            }
        }

        // 绑定点击事件
        $('#pagination a').on('click', function () {
            $('#show_page').val(parseInt($(this).data('page')) - 1); // 因为获取数据的时候会+1，所以这里-1对应
            addmore()
            return false;
        });
    }

    // 高亮显示当前页面
    function highShowCurrentPage(currentPage) {
        $('#pagination a').removeClass('on');
        //$('.page-button:eq(' + (currentPage - 1) + ')').addClass('on');
        $('#pagination a').each(function () {
            if ($(this).data('page') == currentPage) {
                $(this).addClass('on');
            }
        })
    }

</script>
</body>
</html>
